package com.erge.student.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.erge.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.erge.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 学生对象 erge_student
 *
 * @author roydon
 * @date 2025-05-22
 */
@EqualsAndHashCode(callSuper = true)
@Data
@TableName("erge_student")
public class StudentDO extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 学号
     */
    @Excel(name = "学号")
    private String studentId;

    /**
     * 姓名
     */
    @Excel(name = "姓名")
    private String name;

    /**
     * 性别
     */
    @Excel(name = "性别", readConverterExp = "0=男,1=女")
    private String gender;

    /**
     * 类别(专科, 本科, 研究生)
     */
    @Excel(name = "类别(专科, 本科, 研究生)", readConverterExp = "0=专科,1=本科,2=研究生")
    private String type;

    /**
     * 所属院系
     */
    @Excel(name = "所属院系")
    private String faculty;

    /**
     * 所属专业
     */
    @Excel(name = "所属专业")
    private String major;

    /** 所属班级 */
    @Excel(name = "所属班级")
    private String classId;

    /**
     * 分配的宿舍楼
     */
    @Excel(name = "分配的宿舍楼")
    private String dormBuilding;

    /**
     * 分配的宿舍号
     */
    @Excel(name = "分配的宿舍号")
    private String dormNum;

    /**
     * 报到状态（1：已报到，0：未报到）
     */
    @Excel(name = "报到状态", readConverterExp = "1=已报到,0=未报到")
    private String reportStatus;

    /**
     * 报到时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "报到时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date reportTime;

    /**
     * 学费缴纳状态（1：已缴纳，0：未缴纳）
     */
    @Excel(name = "学费缴纳状态", readConverterExp = "1=已缴纳,0=未缴纳")
    private String tuitionStatus;

    /**
     * 贷款申请状态（1：已申请，0：未申请）
     */
    @Excel(name = "贷款申请状态", readConverterExp = "1=已申请,0=未申请")
    private String loanStatus;


}
